#include <stdlib.h>
#define BOARD_MAX_SIZE 8
#define MAX_NUMBER_OF_PIECES 32

static char* pieceID[] = {"Pawn", "Bishop", "Rook", "Knight", "King", "Queen" };
static char* playerID[] = {"Black", "White"};

enum pieceType{ PAWN = 0, BISHOP, ROOK, KNIGHT, KING, QUEEN };
enum playerColor{ BLACK = 0, WHITE };
typedef enum {false, true} Boolean;

typedef struct Pieces{
	enum pieceType piece;
	enum playerColor color;
	int xpos, ypos;
} Piece;

typedef struct Boards{
	Piece* current[BOARD_MAX_SIZE][BOARD_MAX_SIZE];
} Board;

typedef struct Players {
	enum playerColor color;
	Boolean checkmate;
} Player;

Piece* createPiece(int xpos, int ypos, enum playerColor pcolor, enum pieceType ptype);
void resetBoard(Board* board);
Boolean validMove(Piece* piece, int xpos, int ypos);
void move(Piece* piece, int xpos, int ypos);
void capture(int xpos, int ypos);
